#ifndef NEWCHARACTERWIZARD_H
#define NEWCHARACTERWIZARD_H

#include <QDialog>

class QStandardItemModel;
class QComboBox;
class CharacterData;
namespace Ui {
    class NewCharacterWizard;
}

class NewCharacterWizard : public QDialog
{
    Q_OBJECT
public:
    static const char *WIZARD_PAGE_TITLES[];

    enum WizardPages {
            AbilityScores,
            SelectRace,
            SelectClass,
            ChooseSkills,
            SelectFeats,
            ConfigurePowers,
            BuyEquipment,
            AddDetails
    };

    NewCharacterWizard(QWidget *parent = 0);
    ~NewCharacterWizard();

    QString dataSaveName() const { return mDataSaveName; }

private Q_SLOTS:
    void on_buttonBox_accepted();
    void initialize();
    void on_backPushButton_clicked(bool);
    void on_nextPushButton_clicked(bool);
    void setCharacterName(const QString &);

private:
    void selectPage(NewCharacterWizard::WizardPages);

    Ui::NewCharacterWizard *mWizard;
    CharacterData *mCharacterData;
    QString mDataSaveName;
};

#endif // NEWCHARACTERWIZARD_H
